home *** CD-ROM | disk | FTP | other *** search
- /* Effect Operators Mosaic
- 000
- */
-
- call addlib("rexxmathlib.library", 5, -30, 0)
-
- options results
-
- parse ARG Port Opt1 Opt2 Opt3 s0 t0 s1 t1 b
-
- ADDRESS value Port
-
- pp_GetWidth
- w=result
- pp_GetHeight
- h=result
- pp_GetDepth
- D=result
-
- pp_ComposeReqOff
- pp_GetCurrentBrush
- CB=result
- pp_FindEmptyBrush
- Brush=result
- pp_SetBrush Brush
-
- pp_GotoFrame s0
- pp_PicttoSpare
-
- IF Opt3=0|Opt3=2 then DO
- Start_Rot=0
- End_Rot=90
- END
- ELSE DO
- Start_Rot=0
- End_Rot=-90
- END
-
- s2=s0+(s1-s0)/2
-
- Step=s2-s0
- Step_Rot=(End_Rot-Start_Rot)/Step
-
- pp_ClosestColor 0 0 0
- color=result
- pp_SetBpen color
-
- Do i=(s0+1) to s2-1
-
- rot=trunc(Start_Rot+Step_Rot*(i-s0)+0.5,0)
-
- IF t0=0 then DO
- pp_SpareOnOff
- pp_Pickbrush 0 0 W H
- pp_GotoFrame i
- END
- ELSE DO
- pp_GotoFrame i
- pp_Pickbrush 0 0 W H
- END
- pp_Cls
- IF Opt3=0|Opt3=1 then DO
- pp_BrushEffect 0 rot rot rot 2
- END
- ELSE DO
- pp_BrushEffect 0 rot rot rot 2
- END
- pp_plot w/2 h/2
- END
-
- IF Opt3=0|Opt3=2 then DO
- Start_Rot=-90
- End_Rot=0
- END
- ELSE DO
- Start_Rot=90
- End_Rot=0
- END
-
- pp_GotoFrame s2
- pp_Cls
-
- Step=s1-s2
- Step_Rot=(End_Rot-Start_Rot)/Step
-
- pp_GotoFrame s1
- pp_Pickbrush 0 0 W H
-
- Do i=s2+1 to s1
- rot=trunc(Start_Rot+Step_Rot*(i-s2)+0.5,0)
- IF t1=0 then DO
- pp_GotoFrame s1
- pp_Pickbrush 0 0 W H
- pp_GotoFrame i
- END
- ELSE DO
- pp_GotoFrame s1+(i-s2-1)
- pp_Pickbrush 0 0 W H
- pp_GotoFrame i
- END
- pp_Cls
- IF Opt3=0|Opt3=1 then DO
- pp_BrushEffect 0 rot rot rot 2
- END
- ELSE DO
- pp_BrushEffect 0 rot rot rot 2
- END
- pp_plot w/2 h/2
-
- END
-
- pp_Gotoframe s0
- pp_FreeBrush
- pp_SetBrush CB
- pp_BrushOpacity 100
-
- pp_EffectOff
- pp_ComposeReqOn
-
- EXIT
-